Python处理Excel表中单元格带有换行的数据
文章目录
Python处理Excel表中单元格带有换行的数据问题样式实例问题实例实现代码实例结果
问题样式
在数据处理过程中常常会遇到这样一个问题,在给出的Excel表中,有一列数据中每个单元格里面存在多行数据,及多行换行数据。如下图所示:
每一个单元格中的数据如下:
实例问题
将上述类型的数据(文件3.0),可以发现,文件3.0的第一个表中是m行1列数据,先获取每一行数据,每一行的A列数据中都存有3列N行的数据,将第一列作为纵坐标,第二列作为行坐标,进行作图,将会得到m个图片。
实例实现代码
import xlrd
from pylab import *
data1 = xlrd.open_workbook("./数据/3.0.xlsx")
table1 = data1.sheets()[0]
nrows1 = table1.nrows #行数
ncols1 = table1.ncols #列数
def plotLine(i,x,y):
colors1 = '#000000' #点的颜色 黑色
area = np.pi * 4**2 # 点面积
plt.scatter(x, y, s=area, c=colors1, alpha=0.4)
plt.savefig('./结果集/1.1.{}.png'.format(i))
plt.clf() #需要重新更新画布,否则会出现同一张画布上绘制多张图片
for i in range(1,nrows1): #从第二行开始 因为第一行为标题A
rowValues= table1.row_values(i) #某一行数据
lis = []
for item in rowValues:
s = item.replace("\r\n",",") #将换行符合换成逗号
s = s.split(',') #用逗号进行拆分
s = [a for a in s if(len(str(a))!=0)] #去除空元素
num = len(s)
print(num)
for m in np.arange(0, num, 3):
comtent =(s[m],s[m+1],s[m+2])
# x1=[s[m],s[m+1],s[m+2]]
lis.append(comtent)
# res.append(x1)
x =[]
y =[]
# print(lis)
for j in range(0,len(lis)-1):
y.append(lis[j][0])
x.append(lis[j][1])
x = [ float(d) for d in x ] # 一定要将字符串类型转换成数值类型
y = [ float(d) for d in y ] # 一定要将字符串类型转换成数值类型
plotLine(i,x,y)
实例结果
图片1.1.0:
|